]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Remove now unnecessary workspace controls
authorOwen W. Taylor <otaylor@fishsoup.net>
Tue, 25 Jan 2011 21:45:58 +0000 (16:45 -0500)
committerOwen W. Taylor <otaylor@fishsoup.net>
Wed, 9 Feb 2011 00:43:20 +0000 (19:43 -0500)
With automatic workspace management, explicit controls to add and
remove workspaces are no longer necessary. We also can remove the
use of addWorkspace for middle-button-click on a launcher since
launching on the last empty workspace will do the right thing.

https://bugzilla.gnome.org/show_bug.cgi?id=640996

data/Makefile.am
data/theme/add-workspace.svg [deleted file]
data/theme/gnome-shell.css
data/theme/remove-workspace.svg [deleted file]
js/ui/appDisplay.js
js/ui/workspacesView.js

index 2de2ff9764ab1af0efdf035989cc5bb3ee55c6dd..4235d5069e6703ffe164e91f6cbcaa5202934cd0 100644 (file)
@@ -24,7 +24,6 @@ dist_images_DATA =                            \
 
 themedir = $(pkgdatadir)/theme
 dist_theme_DATA =                              \
-       theme/add-workspace.svg                 \
        theme/calendar-arrow-left.svg           \
        theme/calendar-arrow-right.svg          \
        theme/close-window.svg                  \
@@ -37,7 +36,6 @@ dist_theme_DATA =                             \
        theme/mosaic-view.svg                   \
        theme/move-window-on-new.svg            \
        theme/process-working.png               \
-       theme/remove-workspace.svg              \
        theme/running-indicator.svg             \
        theme/scroll-button-down-hover.png      \
        theme/scroll-button-down.png            \
diff --git a/data/theme/add-workspace.svg b/data/theme/add-workspace.svg
deleted file mode 100644 (file)
index 6df7cbd..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="23"
-   height="15"
-   id="svg6375"
-   version="1.1"
-   inkscape:version="0.47pre4 r22446"
-   sodipodi:docname="New document 13">
-  <defs
-     id="defs6377">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 16 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="32 : 16 : 1"
-       inkscape:persp3d-origin="16 : 10.666667 : 1"
-       id="perspective6383" />
-    <inkscape:perspective
-       id="perspective6366"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="11.197802"
-     inkscape:cx="16"
-     inkscape:cy="16"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1680"
-     inkscape:window-height="997"
-     inkscape:window-x="0"
-     inkscape:window-y="26"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata6380">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(0,-17)">
-    <g
-       style="display:inline"
-       id="g6243"
-       transform="translate(-986.28859,-658.2796)">
-      <rect
-         style="fill:#000000;fill-opacity:0.98770495;stroke:#666666;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
-         id="rect5318"
-         width="22"
-         height="14"
-         x="986.89801"
-         y="675.86743"
-         rx="0.49999979"
-         ry="0.5" />
-      <g
-         id="g5320"
-         transform="translate(402.77304,-12.882544)">
-        <path
-           id="path5322"
-           d="m 595.125,692.53048 0,6.43903"
-           style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-        <path
-           id="path5324"
-           d="m 598.34451,695.75 -6.43902,0"
-           style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
-      </g>
-    </g>
-  </g>
-</svg>
index bbe76a7e211b71c9e23113ef1c1a368175c1f61b..df481d82b6a8b7556000c85f3892abcfa8439e2a 100644 (file)
@@ -279,21 +279,6 @@ StTooltip StLabel {
     outline: 2px solid white;
 }
 
-.add-workspace {
-}
-
-.add-workspace:hover {
-    background-color: rgba(128, 128, 128, 0.2);
-}
-
-.remove-workspace {
-    height: 48px;
-}
-
-.remove-workspace:hover {
-    background-color: rgba(128, 128, 128, 0.2);
-}
-
 .window-caption {
     background: rgba(0,0,0,0.8);
     border: 1px solid rgba(128,128,128,0.40);
diff --git a/data/theme/remove-workspace.svg b/data/theme/remove-workspace.svg
deleted file mode 100644 (file)
index 0063302..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="23"
-   height="15"
-   id="svg5501"
-   version="1.1"
-   inkscape:version="0.47pre4 r22446"
-   sodipodi:docname="add-workspace.svg">
-  <defs
-     id="defs5503">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 16 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="32 : 16 : 1"
-       inkscape:persp3d-origin="16 : 10.666667 : 1"
-       id="perspective5509" />
-    <inkscape:perspective
-       id="perspective5314"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="11.197802"
-     inkscape:cx="-0.074583208"
-     inkscape:cy="16"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1680"
-     inkscape:window-height="997"
-     inkscape:window-x="0"
-     inkscape:window-y="26"
-     inkscape:window-maximized="1"
-     inkscape:snap-grids="true"
-     inkscape:snap-bbox="true" />
-  <metadata
-     id="metadata5506">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(0,-17)">
-    <g
-       style="display:inline"
-       id="g6239"
-       transform="translate(-953.97989,-657.32287)">
-      <rect
-         style="fill:#000000;fill-opacity:0.98770495;stroke:#666666;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
-         id="rect5318-6"
-         width="22"
-         height="14"
-         x="954.5"
-         y="675"
-         rx="0.49999979"
-         ry="0.5" />
-      <path
-         style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
-         d="m 968.71951,682 -6.43902,0"
-         id="path5324-5" />
-    </g>
-  </g>
-</svg>
index caec10f3728499ecbdb889da89d9660e236edd6d..43720303dce43f8d25eb9d9f178829845b897541 100644 (file)
@@ -397,13 +397,12 @@ AppWellIcon.prototype = {
         if (button == 1) {
             this._onActivate(Clutter.get_current_event());
         } else if (button == 2) {
-            let newWorkspace = Main.overview.workspaces.addWorkspace();
-            if (newWorkspace != null) {
-                newWorkspace.activate(global.get_current_time());
-                this.emit('launching');
-                this.app.open_new_window();
-                Main.overview.hide();
-            }
+            // Last workspace is always empty
+            let launchWorkspace = global.screen.get_workspace_by_index(global.screen.n_workspaces - 1);
+            launchWorkspace.activate(global.get_current_time());
+            this.emit('launching');
+            this.app.open_new_window();
+            Main.overview.hide();
         }
         return false;
     },
index 5e051080ba8b201194b5279f6f20e00c63cbf412..3ab93bb177323908006e7e50e88126a181fd8764 100644 (file)
@@ -209,12 +209,6 @@ WorkspacesView.prototype = {
             this._workspaces[i].syncStacking(stackIndices);
     },
 
-    // Handles a drop onto the (+) button; assumes the new workspace
-    // has already been added
-    acceptNewWorkspaceDrop: function(source, dropActor, x, y, time) {
-        return this._workspaces[this._workspaces.length - 1].acceptDrop(source, dropActor, x, y, time);
-    },
-
     // Get the grid position of the active workspace.
     getActiveWorkspacePosition: function() {
         let activeWorkspaceIndex = global.screen.get_active_workspace_index();
@@ -223,37 +217,6 @@ WorkspacesView.prototype = {
         return [activeWorkspace.x, activeWorkspace.y];
     },
 
-    canAddWorkspace: function() {
-        return global.screen.n_workspaces < MAX_WORKSPACES;
-    },
-
-    addWorkspace: function() {
-        let ws = null;
-        if (!this.canAddWorkspace()) {
-            Main.overview.shellInfo.setMessage(_("Can't add a new workspace because maximum workspaces limit has been reached."));
-        } else {
-            let currentTime = global.get_current_time();
-            ws = global.screen.append_new_workspace(false, currentTime);
-        }
-
-        return ws;
-    },
-
-    canRemoveWorkspace: function() {
-        return this._getWorkspaceIndexToRemove() > 0;
-    },
-
-    removeWorkspace: function() {
-        if (!this.canRemoveWorkspace()) {
-            Main.overview.shellInfo.setMessage(_("Can't remove the first workspace."));
-            return;
-        }
-        let index = this._getWorkspaceIndexToRemove();
-        let metaWorkspace = this._workspaces[index].metaWorkspace;
-        global.screen.remove_workspace(metaWorkspace,
-                                       global.get_current_time());
-    },
-
     zoomOut: function() {
         if (this._zoomOut)
             return;
@@ -272,21 +235,6 @@ WorkspacesView.prototype = {
         this._updateWorkspaceActors(true);
     },
 
-    _handleDragOverNewWorkspace: function(source, dropActor, x, y, time) {
-        if (source.realWindow)
-            return DND.DragMotionResult.MOVE_DROP;
-        if (source.shellWorkspaceLaunch)
-            return DND.DragMotionResult.COPY_DROP;
-        return DND.DragMotionResult.CONTINUE;
-    },
-
-    _acceptNewWorkspaceDrop: function(source, dropActor, x, y, time) {
-        let ws = this.addWorkspace();
-        if (ws == null)
-            return false;
-        return this.acceptNewWorkspaceDrop(source, dropActor, x, y, time);
-    },
-
     // Compute the position, scale and opacity of the workspaces, but don't
     // actually change the actors to match
     _computeWorkspacePositions: function() {
@@ -717,14 +665,6 @@ WorkspacesDisplay.prototype = {
         controls.connect('notify::hover',
                          Lang.bind(this, this._onControlsHoverChanged));
 
-        // Add/remove workspace buttons
-        this._removeButton = new St.Button({ label: '&#8211;', // n-dash
-                                             style_class: 'remove-workspace' });
-        this._removeButton.connect('clicked', Lang.bind(this, function() {
-            this.workspacesView.removeWorkspace();
-        }));
-        controls.add(this._removeButton);
-
         this._thumbnailsBox = new St.BoxLayout({ vertical: true,
                                                  style_class: 'workspace-thumbnails' });
         controls.add(this._thumbnailsBox, { expand: false });
@@ -744,22 +684,6 @@ WorkspacesDisplay.prototype = {
                                                         indicator.add_constraint(constraint);
                                                     });
 
-        this._addButton = new St.Button({ label: '+',
-                                          style_class: 'add-workspace' });
-        this._addButton.connect('clicked', Lang.bind(this, function() {
-            this.workspacesView.addWorkspace();
-        }));
-        this._addButton._delegate = this._addButton;
-        this._addButton._delegate.acceptDrop = Lang.bind(this,
-            function(source, actor, x, y, time) {
-                return this.workspacesView._acceptNewWorkspaceDrop(source, actor, x, y, time);
-            });
-        this._addButton._delegate.handleDragOver = Lang.bind(this,
-            function(source, actor, x, y, time) {
-                return this.workspacesView._handleDragOverNewWorkspace(source, actor, x, y, time);
-            });
-        controls.add(this._addButton, { expand: true });
-
         this.workspacesView = null;
 
         this._inDrag = false;